package com.zx._01_基础.浅拷贝and深拷贝.shallow;


public class Main {

    /**
     * 深复制演示
     *
     * @param args
     * @throws CloneNotSupportedException
     * @Description: 浅复制（浅克隆）
     *         被复制对象的所有变量都含有与原来的对象相同的值，而所有的对其他对象的引用仍然指向原来的对象。
     *         换言之，浅复制仅仅复制所考虑的对象，而不复制它所引用的对象。
     * @date: 2018年4月14日下午10:28:26
     */
    public static void main(String[] args) throws CloneNotSupportedException {
        User u1 = new User(1, new Name("大名", "小名"));
        System.out.println("原对象:\t\t" + u1);

        User u2 = (User) u1.clone();
        System.out.println("复制获得:\t" + u2);
        System.out.println("u1==u2 : " + u1.equals(u2));

        System.out.println("修改原对象FirstName=2333");
        u1.getName().setFirstName("2333");

        System.out.println("修改后原对象:\t" + u1);
        System.out.println("修改后复制的对象:\t" + u2);
    }

}
